package com.xzmd.md_city.tools;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

/**
 * @DATE 2021/10/8
 * @Author Corady
 */
@Component
public class MyThym {
    //@Resource
    //注入一个对象
    @Autowired
    private TemplateEngine templateEngine;

    //动态网页生成静态网页
    private void createHtml(Object obj) {
        //结合其它工具完成静态化处理
        //1.上下文件对象Content
        Context context = new Context();
//        保存生成的静态网页的数据,obj可以是某个网页的名称,数据单独拿到
        context.setVariable("products", obj);
//    2.打印输出流PrintWriter
        PrintWriter pw = null;
        File file=null;
        try {
//      保存生成的静态网页，指定了完整的路径与文件名,此处是nginx服务器地址
//      可以是cdn静态服务器地址,是网络地址,这里的文件夹不要提前创建,反向代理要先判断
//      不存在,然后跳转到应用,再由此处创建
            file = new File("D:/programd/nginx-1.18.0/huaxin");
            if(!file.exists()){
                file.mkdir();
            }
            pw = new PrintWriter("D:/programd/nginx-1.18.0/huaxin/index.html");
//            生成静态网页
            templateEngine.process("pages/index", context, pw);
        } catch (FileNotFoundException e) {
            System.out.println("***静态化异常***");
        } finally {
            if (pw != null) {
                //pw.flush();
                pw.close();
            }
        }
    }
/////新建线程完成页面静态化
    public  void staticHtml(Object o){
        ThreadTools.execute(()->createHtml(o));
        ThreadTools.execute(new Runnable() {
            @Override
            public void run() {
                createHtml(o);
            }
        });
    }
}
